[IA64] fix PAL call in physical mode.
authorIsaku Yamahata <yamahata@valinux.co.jp>
Mon, 25 Aug 2008 10:04:37 +0000 (19:04 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Mon, 25 Aug 2008 10:04:37 +0000 (19:04 +0900)
Now firmware code is mapped at its own virtual address space
which is same to Linux. So the calculation from virutal
address to physical address should be same to the linux one.
In practice firmware is located in low physical address area
so that masking 60 bit instead of 61 bits doesn't make difference.

I just checked and with the patch below,
xen/arch/ia64/linux-xen/pal.S becomes the same as
arch/ia64/kernel/pal.S from linux 2.6.21.

Signed-off-by: Simon Horman <horms@verge.net.au>
xen/arch/ia64/linux-xen/pal.S

index 8d8577a9ce74308efa114c9848d23cd228888ada..0b533441c3c9b2fc434315c23f45dc0924e64b4c 100644 (file)
@@ -162,11 +162,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static)
        adds r8  = 1f-1b,r8             // calculate return address for call
        ;;
        mov loc4=ar.rsc                 // save RSE configuration
-#ifdef XEN
-       dep.z loc2=loc2,0,60            // convert pal entry point to physical
-#else // XEN
        dep.z loc2=loc2,0,61            // convert pal entry point to physical
-#endif // XEN
        tpa r8=r8                       // convert rp to physical
        ;;
        mov b7 = loc2                   // install target to branch reg
@@ -219,11 +215,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked)
        mov loc3 = psr                  // save psr
        ;;
        mov loc4=ar.rsc                 // save RSE configuration
-#ifdef XEN
-       dep.z loc2=loc2,0,60            // convert pal entry point to physical
-#else // XEN
        dep.z loc2=loc2,0,61            // convert pal entry point to physical
-#endif // XEN
        ;;
        mov ar.rsc=0                    // put RSE in enforced lazy, LE mode
        movl r16=PAL_PSR_BITS_TO_CLEAR